Page({
    data: {
      pageNo: 1,
      dataList: [], // 咨询师列表（补充levelName后）
      pageCount: 0,
      consultantLevel: [] // 咨询师等级列表（{id: 1, levelName: '高级'}）
    },
  
    // 获取咨询师等级列表（返回Promise，确保先加载等级数据）
    getConsultantLevel() {
      return new Promise((resolve, reject) => {
        wx.request({
          url: 'http://localhost:8080/consultantLevel/page',
          data: {},
          method: 'GET',
          success: (resp) => {
            if (resp.data && resp.data.list) {
              // 存储等级列表（后端返回的是ConsultantLevel实体列表，包含id和levelName）
              this.setData({ consultantLevel: resp.data.list }, resolve);
            } else {
              reject('等级数据为空');
            }
          },
          fail: (err) => reject(err)
        });
      });
    },
  
    // 获取咨询师列表并关联等级名称
    getData() {
      wx.showLoading({ title: '加载中...' });
      wx.request({
        url: 'http://localhost:8080/consultant/page',
        data: {
          pageNum: this.data.pageNo, // 前端页码参数，对应后端pageNum
          pageSize: 15
        },
        method: 'GET',
        success: (resp) => {
          if (!resp.data || !resp.data.list) return;
  
          // 核心：通过咨询师的level（等级ID）匹配等级表的id，获取levelName
          const consultantList = resp.data.list.map(consultant => {
            // 从等级列表中找匹配的等级（consultant.level对应等级表的id）
            const matchedLevel = this.data.consultantLevel.find(
              levelItem => levelItem.id === consultant.level
            );
            return {
              ...consultant,
              // 补充等级名称（如果匹配不到，显示"未知等级"）
              levelName: matchedLevel ? matchedLevel.levelName : '未知等级'
            };
          });
  
          // 更新数据
          this.setData({
            dataList: this.data.dataList.concat(consultantList),
            pageCount: resp.data.pages || 0 // 总页数从后端pages字段获取
          });
        },
        complete: () => {
          wx.hideLoading();
          wx.stopPullDownRefresh();
        }
      });
    },
  
    // 页面加载：先加载等级列表，再加载咨询师列表
    onLoad() {
      this.getConsultantLevel()
        .then(() => this.getData()) // 等级数据就绪后再请求咨询师
        .catch(err => {
          console.error('等级列表加载失败：', err);
          wx.showToast({ title: '等级数据加载失败', icon: 'none' });
        });
    },
  
    // 下拉刷新：重置数据后重新加载
    onPullDownRefresh() {
      this.setData({
        pageNo: 1,
        dataList: [],
        pageCount: 0
      }, () => {
        this.getConsultantLevel().then(() => this.getData());
      });
    },
  
    // 上拉加载更多
    onReachBottom() {
      if (this.data.pageNo >= this.data.pageCount) {
        wx.showToast({ title: '没有更多数据啦！', icon: 'none' });
        return;
      }
      this.setData({ pageNo: this.data.pageNo + 1 }, () => {
        this.getData();
      });
    },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

},

/**
 * 生命周期函数--监听页面显示
 */
onShow() {

},

/**
 * 生命周期函数--监听页面隐藏
 */
onHide() {

},

/**
 * 生命周期函数--监听页面卸载
 */
onUnload() {

},
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})